<?php

/**
 * 电话号码的字母组合
 * Class Solution
 */
class Solution {

    /**
     * @param String $digits
     * @return String[]
     */
    function letterCombinations($digits) {

        $a=function($arr,$digit){
            $map=[
                '2'=>'abc',
                '3'=>'def',
                '4'=>'ghi',
                '5'=>'jkl',
                '6'=>'mno',
                '7'=>'pqrs',
                '8'=>'tuv',
                '9'=>'wxyz',
            ];

            $arrTmp=[];
            $str=$map[$digit];
            $len=strlen($str);
            if(empty($arr)){
                $arr=[''];
            }
            foreach($arr as $item){
                for($i=0;$i<$len;$i++){
                    $char=$str[$i];
                    $arrTmp[]="{$item}{$char}";
                }
            }
            return $arrTmp;
        };
        $arr=[];
        $len=strlen($digits);
        for($i=0;$i<$len;$i++){
            $digit=$digits[$i];
            $arr=$a($arr,$digit);
        }
        return $arr;
    }
}